home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 08 System Utilities / LRR200.SFX / lrr200.doc < prev   
Text File  |  1990-02-12  |  25KB  |  448 lines

  1. ╠╔╘╘╠┼ ╥┼─ ╥┼┴─┼╥  ╓ERSION 2.00  [═ARCH 8, 1994]
  2.  
  3. ═╙-─╧╙ FILE READER/WRITER FOR THE ├128 AND 1571/81/╞─ DRIVES.
  4.  
  5. BY ├RAIG ┬RUCE  (CSBRUCE@NEUMANN.UWATERLOO.CA)
  6.  
  7. ╘HIS PROGRAM HAS BEEN IMPROVED OVER VERSION 1.00 TO READ AND WRITE ╚IGH ─ENSITY
  8. ═╙-─╧╙ DISKS ON THE ├═─ ╞─-2000 AND ╞─-4000 DISK DRIVES.  ╩UST SELECT DRIVE
  9. TYPE "1581" FOR USING THESE DRIVES.  ╙INCE THE NEW VERSION HAS GREATER MEMORY
  10. REQUIREMENTS, AFTER STARTING UP "RAMDOS" (IF YOU USE IT) YOU WILL HAVE TO
  11. EXECUTE THE "GRAPHIC CLR" ┬┴╙╔├ COMMAND.
  12.  
  13. 1. ╔╬╘╥╧─╒├╘╔╧╬
  14.  
  15. ╘HIS ARTICLE PRESENTS A PROGRAM THAT READS AND WRITES ═╙-─╧╙ FILES AND THE
  16. ROOT DIRECTORY OF ═╙-─╧╙ DISKS.  ╘HE PROGRAM COPIES ONLY FROM DRIVE TO DRIVE
  17. WITHOUT BUFFERING FILE DATA INTERNALLY.  ╘HIS IS SIMPLER AND IMPOSES NO LIMITS
  18. ON THE SIZE OF THE FILES TRANSFERRED, ALTHOUGH IT REQUIRES THE USE OF TWO DISK
  19. DRIVES (OR A LOGICAL DRIVE).  ╘HE USER-INTERFACE CODE IS WRITTEN IN ┬┴╙╔├ AND
  20. PRESENTS A FULL-SCREEN FILE SELECTION MENU.  ╘HE GRUNT-WORK CODE IS WRITTEN IN
  21. ASSEMBLY LANGUAGE AND OPERATES AT MAXIMUM VELOSITY.
  22.  
  23. ╘HE PROGRAM ALSO ALLOWS ═╙-─╧╙ FILES TO BE DELETED AND TO ALLOWS THE COPYING OF
  24. ├OMMODORE-─╧╙ FILES BETWEEN ├┬═-─╧╙ DISKS (THIS MAKES IT MORE CONVENIENT TO
  25. USE THE PROGRAM WITH A TEMPORARY LOGICAL DRIVE LIKE ╥┴═─╧╙).  ┴LSO, SINCE ╔
  26. HAVE A ├═─ ╞─-4000 FLOPPY DISK DRIVE, ╔ KNOW THAT THIS PROGRAM WORKS WITH
  27. ═╙-─╧╙ DISKS WITH THIS DRIVE (FOR BOTH THE 720╦ AND 1.44═ ═╙-─╧╙ FORMATS).
  28. ╘HE ╞─ DISK DRIVES ARE LOGICALLY REFERRED TO BELOW AS BEING THE 1581.
  29.  
  30. ╘HE ┬URST ├OMMAND ╔NSTRUCTION ╙ET OF THE 1571/81 IS USED TO READ THE ═╙-─╧╙
  31. DISK BLOCKS AND THE STANDARD KERNEL ROUTINES ARE USED FOR OUTPUTTING THE
  32. DATA.  (╔ AM AN OPERATING SYSTEMS SPECIALIST, SO ╔ CALL IT A KERN┼L!)  ╘HUS,
  33. THE ═╙-─╧╙ FILES MUST BE READ FROM A 1571 OR 1581 DISK DRIVE, BUT THE OUTPUT
  34. DEVICE MAY BE ANY DISK DRIVE TYPE, THE SCREEN OR A PRINTER, OR A VIRTUAL DRIVE
  35. TYPE SUCH AS ╥┴═╠INK, ╥┴═─RIVE, OR ╥┴═─╧╙ (FOR THE ╥┼╒).  ╔T IS INTERESTING TO
  36. NOTE THAT THE DATA CAN BE READ IN FROM AN ═╙-─╧╙ DISK FASTER THAN IT CAN BE
  37. WRITTEN OUT TO A 1571, 1581, OR EVEN A ╥┴═─╧╙ FILE.  ┴ ╥┴═╠INK CAN SWALLOW THE
  38. DATA ONLY SLIGHTLY FASTER THAN IT CAN BE READ.
  39.  
  40. ╠ITTLE ╥ED ╥EADER (╠╥╥) SUPPORTS DOUBLE DENSITY 3.5" DISKS FORMATTED WITH 80
  41. TRACKS, 9 SECTORS PER TRACK, AND 2 SIDES WITH A 1581 AND 5.25" DOUBLE DENSITY
  42. DISKS FORMATTED WITH 40 TRACKS, 9 SECTORS PER TRACK, AND 2 SIDES WITH A 1571,
  43. AND NOW, HIGH DENSITY 3.5" DISKS FORMATTED WITH 80 TRACKS, 18 SECTORS PER
  44. TRACK, 2 SIDES, AND A "12-BIT ╞┴╘".  ┴ LIMIT OF 224 DIRECTORY ENTRIES AND 9
  45. ╞ILE ┴LLOCATION ╘ABLE (╞┴╘) SECTORS IS IMPOSED.  ╘HERE MUST BE 2 COPIES OF THE
  46. ╞┴╘ AND THE CLUSTER SIZE MAY BE 1 OR 2 SECTORS.  ╘HE SECTOR SIZE MUST BE 512
  47. BYTES.
  48.  
  49. ╘HE PROGRAM RUNS ON EITHER THE 40 OR 80-COLUMN SCREENS, BUT YOU WILL GET
  50. MUCH BETTER PERFORMANCE FROM THE ┬┴╙╔├ PORTION OF THE PROGRAM BY BEING
  51. IN 80-COLUMN MODE AND ╞┴╙╘ MODE.  ┴ MODIFICATION THAT SOMEONE MIGHT WANT
  52. TO MAKE WOULD BE TO SPREAD-OUT THE DISPLAY FOR THE 80-COLUMN SCREEN AND ADD
  53. COLOR TO THE RATHER BLAND DISPLAY.
  54.  
  55. ╧H, ABOUT THE NAME.  ╔T IS A PLAY ON THE NAME OF ANOTHER ═╙-─╧╙ FILE COPIER
  56. AVAILABLE FOR THE ├-128.  "╠ITTLE" MEANS THAT IT IS SMALLER IN SCOPE THAN THE
  57. OTHER PROGRAM, AND "╥ED" IS A DIFFERENT PRIMARY COLOR TO AVOID ANY LEGAL
  58. COMPLICATIONS.  ╔T IS ALSO THE NON-WHITE COLOR OF THE FLAG OF THE COUNTRY OF
  59. ORIGIN OF THIS PROGRAM (NO, ╔ AM NOT ╩APANESE).  ┴LSO, THIS PROGRAM IS ╨UBLIC
  60. ─OMAIN ╙OFTWARE, AS IS ALL SOFTWARE ╔ DEVELOP FOR 8-BIT ├OMMODORE ├OMPUTERS.
  61. ╞EEL FREE TO ┼-MAIL ME IF YOU HAVE QUESTIONS OR COMMENTS ABOUT THIS ARTICLE.
  62.  
  63. 2. ╒╙┼╥ ╟╒╔─┼
  64.  
  65. ╠╧┴─ AND ╥╒╬ THE "LRR.128" ┬┴╙╔├ PROGRAM FILE.  ╫HEN THE PROGRAM IS FIRST RUN,
  66. IT WILL DISPLAY AN "INITIALIZING" MESSAGE AND WILL LOAD IN THE BINARY MACHINE
  67. LANGUAGE PACKAGE FROM THE "CURRENT" ├OMMODORE ─╧╙ DRIVE (THE CURRENT DRIVE IS
  68. OBTAINED FROM ╨┼┼╦(186) - THE LAST DEVICE ACCESSED).  ╘HE BINARY PACKAGE IS
  69. LOADED ONLY ON THE FIRST RUN AND IS NOT RELOADED ON SUBSEQUENT RUNS IF THE
  70. PACKAGE ╔─ FIELD IS IN PLACE.
  71.  
  72. ╘HE SYSTEM IS DESIGNED TO HAVE TWO FILE SELECTION MENUS: ONE FOR THE ═╙-─╧╙
  73. DISK DRIVE, AND ONE FOR THE ├OMMODORE-─╧╙ DISK DRIVE (WHICH MAY BE A LOGICAL
  74. DISK DRIVE).  ╘HE IDEA FOR COPYING IS THAT YOU SELECT THE FILES IN ONE OF
  75. THESE MENUS, AND THEN PROGRAM KNOWS TO COPY THEM TO THE DISK FOR THE OTHER
  76. MENU.
  77.  
  78. 2.1. ═╙-─╧╙ ═┼╬╒
  79.  
  80. ╘HE MAIN SCREEN OF THE PROGRAM IS THEN DISPLAYED.  ╘HE MAIN SCREEN OF THE
  81. PROGRAM WILL LOOK SOMETHING LIKE THIS:
  82.  
  83.    ═╙-─┼╓=9    ═╙-╘┘╨┼=1581    ├┬═-─┼╓=8
  84.  
  85.    ╬╒═  ╙  ╘╥╬  ╘┘╨  ╞╔╠┼╬┴═┼  ┼╪╘  ╠┼╬╟╘╚
  86.    ---  -  ---  ---  --------  ---  ------
  87.      1  *  ┴╙├  ╙┼╤  ╚┴├╦4     ╘╪╘  120732
  88.      2     ┬╔╬  ╨╥╟  ╥┴═─╧╙    ╙╞╪   34923
  89.  
  90.    ─=─╔╥┼├╘╧╥┘  ═=═╙-─┼╓  ╞=├┬═-─┼╓ ╤=╤╒╔╘
  91.    ╘=╘╧╟╟╠┼-├╧╠╒═╬, ├=├╧╨┘-╞╔╠┼╙, +/- ╨┴╟┼
  92.  
  93. EXCEPT THAT IMMEDIATELY AFTER STARTING UP, "<DIRECTORY NOT LOADED>" WILL BE
  94. DISPLAYED RATHER THAN FILENAMES.  ╘HE "═╙-─┼╓" AND "═╙-╘┘╨┼" FIELDS GIVE THE
  95. DEVICE NUMBER AND TYPE OF THE DRIVE CONTAINING THE ═╙-─╧╙ DISK TO COPY FROM,
  96. AND THE "├┬═-─┼╓" GIVES THE DEVICE NUMBER OF THE DRIVE/VIRTUAL DRIVE/CHARACTER
  97. DEVICE TO COPY FILE DATA TO.  ╘HE NUMBER OF BYTES FREE ON THE DRIVE ARE ALSO
  98. DISPLAYED (WHICH IS USEFUL TO KNOW WHEN WRITING FILES) AND THERE ARE SOME MORE
  99. COMMANDS.
  100.  
  101. ╔NFORMATION ABOUT ALL ═╙-─╧╙ FILES IN THE ROOT DIRECTORY OF THE ═╙-─╧╙ DISK IS
  102. DISPLAYED IN COLUMNS BELOW THE DRIVE INFORMATION.  "╬╒═" GIVES THE NUMBER OF
  103. THE ═╙-─╧╙ FILE IN THE DIRECTORY LISTING, AND "╙" INDICATES WHETHER THE FILE
  104. IS "SELECTED" OR NOT.  ╔F THE FILE IS SELECTED, AN ASTERISK (*) IS DISPLAYED;
  105. OTHERWISE, A BLANK IS DISPLAYED.  ╫HEN YOU LATER ENTER ├OPY ═ODE, ONLY THE
  106. FILES THAT HAVE BEEN "SELECTED" ARE COPIED.
  107.  
  108. ╘HE "╘╥╬" FIELD INDICATES THE CHARACTER TRANSLATION SCHEME TO BE USED WHEN THE
  109. FILE IS COPIED.  ┴ VALUE OF "┬╔╬" (BINARY) MEANS NO TRANSLATION AND A VALUE OF
  110. "┴╙├" (ASCII) MEANS THE FILE CHARACTERS ARE TO BE TRANSLATED FROM ═╙-─╧╙ ┴╙├╔╔
  111. (OR "┴╙├╔╔-├R╠F") TO ╨┼╘╙├╔╔.  ╘HE "╘┘╨" FIELD INDICATES THE TYPE OF
  112. ├OMMODORE-─╧╙ FILE TO CREATE FOR WRITING THE ═╙-─╧╙ FILE CONTENTS INTO.  ╘HE
  113. POSSIBLE VALUES ARE "╙┼╤" (SEQUENTIAL) AND "╨╥╟" (PROGRAM).  ╘HE VALUES OF THE
  114. ╘╥╬ AND ╘┘╨ FILEDS ARE SET INDEPENDENTLY, SO YOU CAN COPY BINARY DATA TO ╙┼╤
  115. FILES AND ASCII DATA TO ╨╥╟ FILES IF YOU WISH.
  116.  
  117. ╘HE "╞╔╠┼╬┴═┼" AND "┼╪╘" FIELDS GIVE THE FILENAME AND EXTENSION TYPE OF THE
  118. ═╙-─╧╙ FILES AND "╠┼╬╟╘╚" GIVES THE EXACT LENGTH OF THE FILES IN BYTES.  ╬OTE
  119. THAT IF YOU PERFORM "┴╙├" TRANSLATION ON A FILE, ITS ╨┼╘╙├╔╔ VERSION WILL HAVE
  120. A SHORTER LENGTH.
  121.  
  122. 2.2. ╒╙┼╥ ├╧══┴╬─╙
  123.  
  124. ╘HE BOTTOM OF THE SCREEN GIVES THE COMMAND SUMMARY.  ┴FTER STARTING THE
  125. PROGRAM, YOU WILL WANT TO SETUP THE ═╙-─╧╙ AND ├┬═-─╧╙ DRIVES WITH THE "═" AND
  126. "╞" COMMANDS.  ╙IMPLY PRESS THE (LETTER) KEY CORRESPONDING TO THE COMMAND
  127. NAME TO ACTIVATE THE COMMAND.  ╨RESSING ═ WILL PROMPT YOU FOR THE ═╙-─╧╙ ─RIVE
  128. ╬UMBER AND THE ═╙-─╧╙ ─RIVE ╘YPE.  ╔N BOTH CASES, TYPE THE NUMBER AND PRESS
  129. ╥┼╘╒╥╬.  (╙ORRY FOR INSULTING ALL NON-NOVICES OUT THERE, BUT ╔ WANT TO BE
  130. COMPLETE).  ╘HE ═╙-─╧╙ DRIVE NUMBER CANNOT BE THE SAME AS THE ├┬═-─╧╙ DRIVE
  131. NUMBER (SINCE THE PROGRAM COPIES FROM DRIVE-TO-DRIVE WITHOUT INTERNAL
  132. BUFFERING).  ╞OR THE DRIVE TYPE, ENTER AN "8", "81", OR "1581" FOR A 1581
  133. DRIVE OR ANYTHING ELSE FOR A 1571 DRIVE.
  134.  
  135. ╨RESSING ╞ WILL PROMPT YOU FOR THE ├┬═-─╧╙ DEVICE NUMBER.  ┘OU MAY ENTER A
  136. NUMBER FROM 0 TO 30, EXCEPT THAT IT MUST NOT BE THE ═╙-─╧╙ DRIVE NUMBER.
  137. ┼NTER A "1" FOR ├ASSETTE ─RIVE (╟OD FORBID!), A "3" FOR THE SCREEN, A "4" FOR
  138. THE PRINTER (WITH AN AUTOMATIC SECONDARY ADDRESS OF 7 (LOWERCASE)), ANY NUMBER
  139. ABOVE 7 FOR A ├OMMODORE DISK DRIVE OR SPECIAL VIRTUAL DRIVE, OR A VALUE OF "0"
  140. FOR THE SPECIAL "NULL" DRIVE.  ┴ ├┬═-─┼╓ VALUE OF 0 WILL CASE THE PROGRAM TO
  141. READ ═╙-─╧╙ FILES AND DO NOTHING WITH THE OUTPUT.  ┘OU CAN USE THIS FEATURE TO
  142. CHECK OUT THE RAW READING SPEED OF THE PROGRAM.
  143.  
  144. ┴FTER SETTING UP THE DRIVES, PRESS ─ TO READ IN THE ROOT DIRECTORY OFF THE
  145. ═╙-─╧╙ DISK.  ╘HE DATA WILL COME BLAZING IN FROM THE DISK BUT ┬┴╙╔├ WILL TAKE
  146. ITS GOOD OLE TIME SIFTING THROUGH IT.  ╞ILENAMES ARE DISPLAYED ON THE SCREEN
  147. AS THEY ARE SCANNED IN.  ╘HE PROGRAM WILL (EVENTUALLY) RETURN TO THE MAIN
  148. SCREEN AND DISPLAY THE FORMATTED FILE INFORMATION.  ╧NE NOTE: THE PROCESS OF
  149. LOGGING IN A 1581 ═╙-─╧╙ DISK TAKES ABOUT 12 SECONDS (ON MY 1581, ANYWAY), SO
  150. BE PATIENT.  ┴N ═╙-─╧╙ DISK WILL HAVE TO BE "LOGGED IN" EVERY TIME YOU CHANGE
  151. ═╙-─╧╙ DISKS.  (─ISKS ARE LOGGED IN AUTOMATICALLY).
  152.  
  153. ┴ COUPLE OF NOTES ABOUT ACCESSING ═╙-─╧╙ DISKS: DON'T TRY TO ACCESS A DEVICE
  154. THAT IS NOT PRESENT BECAUSE THE MACHINE LANGUAGE ROUTINES CANNOT HANDLE THIS
  155. ERROR FOR SOME REASON AND WILL LOCK UP, REQUIRING A ╙╘╧╨+╥┼╙╘╧╥┼.  ┴LSO, MAKE
  156. SURE THAT AN ACTUAL ═╙-─╧╙ DISK IS LOADED INTO THE DRIVE.  ╔F YOU ACCIDENTALLY
  157. PLACE ├OMMODORE-─╧╙ DISK INTO THE ═╙-─╧╙ DRIVE, THE 1581 WILL REPORT AN
  158. INVALID BOOT PARAMETERS ERROR (#60), BUT A 1571 WILL LOCK UP (SINCE ╔ DON'T
  159. CHECK THE SECTOR SIZE AND MY BURST ROUTINES ARE EXPECTING 512 BYTES TO COME
  160. OUT OF A SECTOR WHEREAS ├OMMODORE DISKS HAVE ONLY 256 BYTES PER SECTOR).
  161.  
  162. ╬OW YOU ARE READY TO PICK WHAT FILES YOU WANT COPIED AND HOW YOU WANT THEM
  163. COPIED.  ┘OU WILL NOTICE THAT A "CURSOR" APPEARS IN THE "╙" COLUMN OF THE
  164. FIRST FILE.  ┘OU MAY MOVE THE CURSOR AROUND WITH THE CURSOR KEYS: ╒╨, ─╧╫╬,
  165. ╠┼╞╘, ╥╔╟╚╘, ╚╧═┼, AND ├╠╥.  ├╠╥ (╙╚╔╞╘-╚╧═┼) WILL MOVE THE CURSOR BACK TO THE
  166. FIRST FILE ON THE FIRST SCREEN.  ┘OU CAN MOVE THE CURSOR AMONG THE SELECT,
  167. TRANSLATION, AND FILE-TYPE COLUMNS OF ALL THE FILES.  ╨RESSING A ╙╨┴├┼ OR A
  168. ╥┼╘╒╥╬ WILL TOGGLE THE VALUE OF THE FIELD THAT THE CURSOR IS ON.  ╘O TOGGLE
  169. ALL OF THE VALUES OF THE "CURSOR" COLUMN (INCLUDING FILES ON ALL OTHER
  170. SCREENS), PRESS ╘.  ┘OU WILL NOTICE THAT MOVING THE CURSOR AROUND AND TOGGLING
  171. FIELDS IS A BIT SLUGGISH, ESPECIALLY IF YOU ARE IN ╙LOW MODE ON THE 40-COLUMN
  172. SCREEN.  ─ID ╔ MENTION THAT THIS PROGRAM WILL RUN ON EITHER THE 40 OR
  173. 80-COLUMN SCREEN?  ╘OGGLING AN ENTIRE COLUMN CAN TAKE A COUPLE OF SECONDS.
  174.  
  175. ╔F THERE ARE MORE THAN 18 ═╙-─╧╙ FILES, YOU CAN PRESS THE "+" AND "-" KEYS TO
  176. MOVE AMONG ALL OF THE SCREENS OF FILES.  ╘HE CURSOR MOVEMENT KEYS WILL WRAP
  177. AROUND ON THE CURRENT SCREEN.  "+" IS PAGE FORWARD, AND "-" IS PAGE BACKWARD.
  178. ╘HE SCREENS WRAP AROUND TOO.
  179.  
  180. ┴FTER YOU HAVE SELECTED ALL OF THE FILES YOU WANT TO COPY AND THEIR TRANSLATION
  181. AND FILE-TYPE FIELDS HAVE BEEN SET, PRESS THE ├ KEY TO GO INTO ├OPY ═ODE (NEXT
  182. SECTION).  ┴FTER COPYING, YOU ARE RETURNED TO THE MAIN SCREEN WITH ALL OF THE
  183. FIELD SETTINGS STILL INTACT.  ╘O EXIT FROM THE PROGRAM, PRESS ╤.
  184.  
  185. ┴DDITIONAL COMMANDS ARE: "╥" (REMOVE == DELETE), "/" (CHANGE MENU), AND "╪"
  186. (COPY ├┬═ FILES == "╪EROX").
  187. ╘HE REMOVE COMMAND IS USED TO DELETE SELECTED FILES FROM THE ═╙-─╧╙ DISK.
  188. ┴FTER SELECTING THIS OPTION, YOU WILL GET AN ANNOYING "ARE YOU SURE" QUESTION
  189. AND THE THE SELECTED FILES WILL QUICKLY DISAPPEAR AND THE CHANGES WILL FINALLY
  190. BE WRITTEN TO DISK.  ─ELETING A BATCH OF ═╙-─╧╙ FILES IS MUCH QUICKER THAN
  191. DELETING ├OMMODORE-─╧╙ FILES SINCE ═╙-─╧╙ DISKS USE A ╞ILE ┴LLOCATION ╘ABLE
  192. RATHER THAN THE LINKED LIST OF BLOCKS ORGANIZATION THAT ├┬═ USES.  ╔N ORDER TO
  193. MAKE THE ┬┴╙╔├ PROGRAM EXECUTE QUICKER, AFTER DELETING, THE ORIGINAL ORDER OF
  194. THE FILENAMES IN THE DIRECTORY LISTING WILL BE CHANGED.  ┬E FOREWARNED THAT
  195. THE DELETE OPERATION IS NON-RECOVERABLE.
  196.  
  197. ╘HE CHANGE MENU COMMAND IS USED TO MOVE BACK AND FORTH BETWEEN THE ├OMMODORE-
  198. ─╧╙ AND ═╙-─╧╙ MENUS.
  199.  
  200. 2.3. ├╧╨┘╔╬╟ ═╙-─╧╙ ╘╧ ├┬═-─╧╙
  201.  
  202. ╫HEN YOU ENTER COPY MODE, THE SCREEN WILL CLEAR AND THE NAME OF EACH SELECTED
  203. FILE IS DISPLAYED AS IT IS BEING COPIED.  ╔F AN ERROR IS ENCOUNTERED ON EITHER
  204. THE ═╙-─╧╙ OR ├┬═-─╧╙ DRIVE DURING COPYING, AN ERROR MESSAGE WILL BE DISPLAYED
  205. AND COPYING WILL CONTINUE (AFTER YOU PRESS A KEY FOR ═╙-─╧╙ ERRORS).
  206.  
  207. ╘O GENERATE A ├┬═-─╧╙ FILENAME FROM AN ═╙-─╧╙ FILENAME, THE EIGHT FILENAME
  208. CHARACTERS ARE TAKEN (INCLUDING SPACES) AND A DOT (.) AND THE THREE CHARACTERS
  209. OF THE EXTENSION ARE APPENDED.  ╘HEN, ALL SPACES ARE REMOVED, AND IF THE NAME
  210. ENDS WITH A DOT (.) CHARACTER, THEN THAT DOT CHARACTER IS REMOVED AS WELL.  ╔
  211. THINK THIS IS FAIRLY REASONABLE.
  212.  
  213. ╔F THERE ALREADY IS A FILE WITH THE SAME FILENAME ON THE ├┬═-─╧╙ DISK, THEN
  214. YOU WILL BE PROMPTED IF YOU WANT TO OVERWRITE THE FILE OR NOT.  ┼NTERING AN
  215. "N" WILL ABORT THE COPYING OF THAT FILE AND GO ON TO THE NEXT FILE, AND
  216. ENTERING A "Y" (OR ANYTHING ELSE) WILL CAUSE THE ├┬═-─╧╙ FILE TO BE
  217. "SCRATCHED" AND THEN RE-WRITTEN.
  218.  
  219. ╘HE PHYSICAL COPYING OF THE FILE IS DONE COMPLETELY IN MACHINE LANGUAGE AND
  220. NOTHING IS DISPLAYED ON THE SCREEN WHILE THIS IS HAPPENING, BUT YOU CAN FOLLOW
  221. THINGS BY LOOKING AT DAS BLINKIN LICHTES AND LISTENING FOR CLICKS AND GRINDS.
  222. ┘OU WILL PROBABLY BE SURPRISED BY THE ═╙-─╧╙ FILE READING SPEED (╔ MEAN IN A
  223. GOOD WAY).  ╘HE DISK DATA IS READ IN WHOLE TRACKS AND CACHED IN MEMORY AND THE
  224. DIRECTORY INFORMATION AND THE ╞┴╘ ARE RETAINED IN MEMORY AS WELL.  ╘HE RESULT
  225. IS THAT MINIMAL TIME IS SPENT READING DISK DATA, AND NO COSTLY SEEKS ARE
  226. REQUIRED FOR OPENING A NEW ═╙-─╧╙ FILE.  ┴ RESULT IS THAT SMALL FILES ARE
  227. COPIED ONE AFTER ANOTHER VERY QUICKLY.  ┘OU WILL HAVE TO WAIT, HOWEVER, ON THE
  228. RELATIVELY SLOW STANDARD KERNEL/├OMMODORE-─╧╙ FILE WRITING.
  229.  
  230. ┴ FEW CHANGES HAD TO BE MADE TO THE PROGRAM TO ACCOMODATE THE ╥┴═─╧╙ PROGRAM.
  231. ╥┴═─╧╙ USES MEMORY FROM $2300 TO $3╞╞╞ OF ╥┴═0, WHICH IS NOT REALLY A GOOD
  232. PLACE FOR A DEVICE DRIVER, AND IT USES SOME OF THE ZERO-PAGE LOCATIONS THAT ╔
  233. WANTED TO USE.  ┬UT, DIFFICULTIES WERE OVERCOME.  ╘HE IMPORTANCE OF ╥┴═─╧╙
  234. COMPATIBILITY IS THAT IF YOU ONLY HAVE ONE DISK DRIVE BUT YOU HAVE AN ╥┼╒, YOU
  235. CAN USE ╥┴═─╧╙ TO STORE THE ═╙-─╧╙ FILES TEMPORARILY.  ╔F YOU ONLY HAVE ONE
  236. DISK DRIVE AND NO ╥┼╒, YOU ARE ╙╧╠ (╧UT OF ╠UCK) UNLESS YOU CAN GET A
  237. ╥AM─ISK-TYPE PROGRAM FOR AN UNEXPANDED 128.  ╘HE ╥┴═─╧╙ PROGRAM IS AVAILABLE
  238. FROM ╞╘╨ SITE "CCOSUN.CALTECH.EDU" IN FILE "/PUB/RKNOP/UTIL128/RAMDOSII.SFX".
  239. ╧NE NOTE ╔ FOUND OUT ABOUT ╥┴═─╧╙: YOU CANNOT USE A
  240.  
  241. ─╧╨┼╬#1,(├╞$),╒(├─),╫
  242.  
  243. WITH IT LIKE YOU ARE SUPPOSED TO BE ABLE TO; YOU HAVE TO USE A
  244.  
  245. ─╧╨┼╬#1,(├╞$+",╫"),╒(├─)
  246.  
  247. ╚ERE IS A TABLE OF COPYING SPEEDS FOR COPYING FROM 1571S AND 1581S WITH ┴╙├
  248. AND ┬╔╬ TRANSLATION MODES.  ┴LL FIGURES ARE IN BYTES/SECOND.  ╘HESE RESULTS
  249. WERE OBTAINED FROM COPYING A 127,280 BYTE TEXT FILE (THE TEXT OF ├= ╚ACKING
  250. ╔SSUE #3).
  251.  
  252.    ╞╥╧═  \ ╘╧: "NULL"     ╥┴═╠INK     ╥┴═─╧╙     ╩─1581     ╩─1571
  253.    -------+    ------     -------     ------     ------     ------
  254.    81-BIN ▄      5772        3441       2146        N/A        644
  255.    81-ASC ▄      5772        3434       2164        N/A        661
  256.    71-BIN ▄      4323        2991       1949       1821        N/A
  257.    71-ASC ▄      4323        2982       1962       1847        N/A
  258.  
  259. ╘HE "NULL" DEVICE IS THAT "0" ├┬═-─╧╙ DEVICE NUMBER, AND A COUPLE OF ENTRIES
  260. ARE "N/A" SINCE ╔ ONLY HAVE ONE 1571 AND ONE 1581.  ╬OTE THAT MY 71 AND 81 ARE
  261. ╩IFFY─╧╙-IFIED, SO THE PERFORMANCE OF A STOCK 71/81 WILL BE POORER.  ╩IFFY─╧╙
  262. GIVES ABOUT A 2X PERFORMANCE IMPROVEMENT FOR THE STANDARD FILE ACCESSING CALLS
  263. (OPEN, CLOSE, CHRIN, CHROUT).  ╥┴═─╧╙ DOESN'T SEEM TO BE AS SNAPPY AS YOU
  264. MIGHT THINK.
  265.  
  266. ╘HE "NULL" FIGURES ARE QUITE IMPRESSIVE, BUT THE RAW SECTOR READING SPEED
  267. WITHOUT THE OVERHEAD OF MUCKING AROUND WITH FILE ORGANIZATION IS 6700
  268. BYTES/SEC FOR A 1581 AND 4600 ┬/S FOR A 71.  ╘HE REASON THAT THE 1571 OPERATES
  269. SO QUICKLY IS THAT ╔ USE A SECTOR INTERLEAVE OF 4 (WHICH IS OPTIMAL) FOR
  270. READING THE TRACKS.  ╔ THINK THAT OTHER ═╙-─╧╙ FILE COPIER PROGRAM USES AN
  271. INTERLEAVE OF 1 (WHICH IS NOT OPTIMAL).  ╔ LOSE SOME OF THE RAW PERFORMANCE
  272. BECAUSE ╔ COPY THE FILE DATA INTERNALLY ONCE BEFORE OUTPUTTING IT (TO SIMPLIFY
  273. SOME OF THE CODE).
  274.  
  275. ╔N A COUPLE OF PLACES YOU WILL NOTICE THAT ┴╙├ TRANSLATION GIVES SLIGHTLY
  276. BETTER OR SLIGHTLY WORSE PERFORMANCE THAN ┬╔╬.  ╘HIS IS BECAUSE ALTHOUGH
  277. SLIGHTLY MORE WORK IS REQUIRED TO TRANSLATE THE CHARACTERS, SLIGHTLY FEWER
  278. CHARACTERS WILL HAVE TO BE WRITTEN TO THE ├┬═-─╧╙ FILE, SINCE ╨┼╘╙├╔╔ USES
  279. ONLY ├╥ WHERE ═╙-─╧╙ ┴╙├╔╔ USES ├╥ AND ╠╞ TO REPRESENT END-OF-LINE.
  280. ╘RANSLATION IS DONE BY USING A TABLE (THAT YOU CAN CHANGE IF YOU WISH).  ═ANY
  281. ENTRIES IN THIS TABLE CONTAIN A VALUE OF ZERO, WHICH MEANS THAT NO CHARACTER
  282. WILL BE OUTPUT ON TRANSLATION.  ═OST OF THE CONTROL CHARACTERS AND ALL OF THE
  283. CHARACTERS OF VALUE 128 (0X80) OR GREATER ARE THROWN AWAY ON BEING
  284. TRANSLATED.  ╘HE TABLE IS SET UP SO THAT ├╥ CHARACTERS ARE THROWN AWAY AND THE
  285. ╠╞ CHARACTER IS TRANSLATED TO A ├┬═-─╧╙ ├╥ CHARACTER.  ╘HUS, BOTH ═╙-─╧╙ ┴╙├╔╔
  286. FILES AND ╒╬╔╪ ┴╙├╔╔ FILES CAN BE TRANSLATED CORRECTLY.
  287.  
  288. 2.4. ├╧══╧─╧╥┼-─╧╙ ═┼╬╒
  289.  
  290. ╘HE ├OMMODORE-─╧╙ MENU, WHICH DISPLAYS THE NAMES OF THE ├OMMODORE FILES
  291. SELECTED FOR VARIOUS OPERATIONS, LOOKS AND WORKS PRETTY MUCH THE SAME AS
  292. THE ═╙-─╧╙ MENU:
  293.  
  294.    ├┬═─╧╙  ═╙=10:1581  ├┬═=8  ╞╥┼┼=3211476
  295.  
  296.    ╬╒═  ╙  ╘╥╬  ╞╔╠┼╬┴═┼         ╘  ╠┼╬╟╘╚
  297.    ---  -  ---  ---------------- -  ------
  298.      1  *  ┬╔╬  ╠╥╥-128          ╨    9876
  299.      2     ┴╙├  ├╧═-╚┴├╦╔╬╟-005  ╙  175412
  300.  
  301.    ─=─╔╥ ═=═╙─┼╓ ╞=├┬═─┼╓ ├=├╧╨┘ ╤=╤╒╔╘
  302.    ╘=╘╧╟╟╠┼ ╥=╥┼═╧╓┼ ╪=├┬═├╨┘ /=═┼╬╒ +-=╨╟
  303.  
  304. ┘OU'LL NOTICE, HOWEVER, THAT THE FILETYPE FIELD ("╘" HERE) IS MOVED AND IS
  305. UNCHANGABLE.  ┴LSO, THE FILE LENGTHS ARE NOT EXACT; THEY ARE REPORTED AS THE
  306. BLOCK COUNT OF THE FILE MULTIPLIED BY 254.  ╘HIS MENU IS NOT MAINTAINED FOR
  307. FILES BEING COPIED TO THE ├┬═-─╧╙ DISK FROM AN ═╙-─╧╙ DISK.  ┘OU'LL
  308. HAVE TO RE-EXECUTE THE ─IRECTORY INSTRUCTION TO GET AN UPDATED LISTING.
  309.  
  310. ╘HE "─" (DIRECTORY) COMMAND HAS LOCAL EFFECT WHEN IN THIS MENU.  ╘HE
  311. ├OMMODORE-─╧╙ DIRECTORY WILL BE LOADED FROM THE CURRENT ├┬═ DEVICE NUMBER.
  312. ╬OTE THAT IN ORDER FOR THIS TO WORK, THE ├┬═ DEVICE MUST BE NUMBER EIGHT
  313. OR GREATER (A DISK DRIVE).  ╧RIGINALLY, THE SUBROUTINE FOR THIS COMMAND WAS
  314. WRITTEN USING ONLY ╟┼╘#'S FROM THE DISK AND WAS VERY SLOW.  ╔T WAS MODIFIED,
  315. HOWEVER, TO CALL A MACHINE LANGUAGE SUBROUTINE TO READ THE INFORMATION FOR
  316. A DIRECTORY ENTRY FROM THE DIRECTORY LISTING, AND HENCE THE SUBROUTINE NOW
  317. OPERATES AT A TOLERABLE SPEED.
  318.  
  319. ╘HE "├" (COPY) COMMAND ALSO HAS A DIFFERENT MEANING WHEN IN THIS MENU.  ╔T
  320. MEANS TO COPY THE SELECTED ├┬═ FILES TO THE ═╙-─╧╙ DISK.  ╙EE DETAILS BELOW.
  321.  
  322. ╘HE COPY ├┬═ FILES ("╪") COMMAND IS USED TO COPY THE FILES IN THE ├┬═-─╧╙ MENU
  323. TO ANOTHER ├┬═-─╧╙ DISK UNIT.  ╙ELECT THE FILES YOU WANT TO COPY AND THEN
  324. PRESS ╪.  ┘OU WILL THEN BE ASKED WHAT DEVICE NUMBER YOU WANT TO COPY THE FILES
  325. TO.  ╘HE DEVICE CAN BE ANOTHER DISK DRIVE OR ANY OTHER DEVICE (EXCEPT THE
  326. KEYBOARD).  ╒SING DEVICE NUMBER 0 DOES NOT MEAN THE "NULL" DEVICE AS IT DOES
  327. WITH COPYING ═╙-─╧╙ TO ├┬═.  ╔F YOU ARE COPYING TO A DISK DEVICE AND THE FILE
  328. ALREADY EXISTS, THEN YOU WILL BE ASKED IF YOU WISH TO OVERWRITE THE FILE.  ┘OU
  329. CANNOT COPY TO THE SAME DISK UNIT.  ┴LSO, ALL FILES ARE COPIED IN BINARY MODE
  330. (REGARDLESS OF WHAT TRANSLATION YOU HAVE SELECTED FOR A FILE).
  331.  
  332. ╘HE COPY ├┬═ FILES COMMAND WAS INCLUDED SINCE ALL OF THE LOW-LEVEL GEAR
  333. NEEDED TO IMPLEMENT IT (SPECIFICALLY "COMMIE╔N" AND "COMMIE╧UT" BELOW) WAS
  334. ALSO REQUIRED BY OTHER FUNCTIONS.  ╘HIS COMMAND CAN BE VERY CONVENIENT WHEN
  335. WORKING WITH ╥┴═─╧╙.  ╞OR EXAMPLE, IF YOU ONLY HAD A 1571 AS DEVICE 8 BUT YOU
  336. HAVE A ╥┴═ EXPANDER AND HAVE INSTALLED ╥┴═─╧╙ AS DEVICE 9, THEN YOU WOULD
  337. COPY ═╙-─╧╙ FILES TO ╥┴═─╧╙ USING THE ═╙-─╧╙ MENU, AND THEN YOU WOULD GO TO
  338. THE ├OMMODORE-─╧╙ MENU ("/"), READ THE DIRECTORY, SELECT ALL FILES, INSERT AN
  339. ├OMMODORE-─╧╙ DISKETTE INTO YOUR 1571, AND THEN USE "╪" TO COPY FROM THE
  340. ╥┴═─╧╙ DEVICE TO THE 1571.
  341.  
  342. ╘HE REMOVE COMMAND ("╥") DOES NOT WORK FOR THIS DIRECTORY.  ┘OU CAN ╙├╥┴╘├╚
  343. YOUR ├┬═-─╧╙ FILES YOUR DAMN SELF.
  344.  
  345. 2.5. ├╧╨┘ ├┬═-─╧╙ ╘╧ ═╙-─╧╙
  346.  
  347. ┬EFORE YOU CAN COPY SELECTED ├┬═-─╧╙ FILES TO AN ═╙-─╧╙ DISK, THE ═╙-─╧╙ DISK
  348. DIRECTORY MUST BE ALREADY LOADED (FROM THE ═╙-─╧╙ MENU).  ╘HIS IS REQUIRED
  349. SINCE THE DIRECTORY AND ╞┴╘ INFORMATION ARE KEPT IN MEMORY AT ALL TIMES DURING
  350. THE EXECUTION OF THIS PROGRAM.
  351.  
  352. ╫HEN YOU ENTER COPY MODE, THE SCREEN WILL CLEAR AND THE NAME OF EACH SELECTED
  353. FILE IS DISPLAYED AS IT IS BEING COPIED.  ╔F AN ERROR IS ENCOUNTERED ON EITHER
  354. THE ═╙-─╧╙ OR ├┬═-─╧╙ DRIVE DURING COPYING, AN ERROR MESSAGE WILL BE DISPLAYED
  355. AND COPYING WILL CONTINUE (AFTER YOU PRESS A KEY FOR ═╙-─╧╙ ERRORS).  ╨LEASE
  356. NOTE THAT NOT A WHOLE LOT OF EFFORT WAS PUT INTO ERROR RECOVERY.
  357.  
  358. ╘O GENERATE AN ═╙-─╧╙ FILENAME FROM AN ├┬═-─╧╙ FILENAME, THE FOLLOWING
  359. ALGORITHM IS USED.  ╘HE FILENAME IS SEARCHED FROM RIGHT TO LEFT FOR THE LAST
  360. "." CHARACTER.  ╔F THERE IS NO "." CHARACTER, THEN THE ENTIRE FILENAME, UP TO
  361. 11 CHARACTERS, IS USED AS THE ═╙-─╧╙ FILENAME.  ├HARACTERS 9 TO 11 WILL BE
  362. USED AS THE EXTENSION.  ╔F THERE IS A "." CHARACTER, THE ALL CHARACTERS BEFORE
  363. IT, UP TO EIGHT, WILL BE USED AS THE ═╙-─╧╙ FILENAME AND ALL CHARACTERS AFTER
  364. THE FINAL ".", UP TO THREE, WILL BE USED AS THE ═╙-─╧╙ EXTENSION.
  365.  
  366. ╘HEN, THE NEWLY GENERATED ═╙-─╧╙ FILENAME IS SCANNED FOR ANY EXTRA "."
  367. CHARACTERS OR EMBEDDED SPACES.  ╔F ANY ARE FOUND, THEY ARE REPLACED BY THE
  368. UNDERSCORE CHARACTER ("_", WHICH IS THE BACKARROW CHARACTER ON A ├OMMODORE
  369. DISPLAY).  ╞INALLY, ALL TRAILING UNDERSCORES ARE REMOVED FROM THE END OF BOTH
  370. THE FILENAME AND EXTENSION PORTIONS OF THE ═╙-─╧╙ FILENAME.  ┴LSO, ALL
  371. CHARACTERS ARE CONVERTED TO LOWERCASE ╨┼╘╙├╔╔ (WHICH IS UPPERCASE ┴╙├╔╔) WHEN
  372. THEY ARE COPIED INTO THE ═╙-─╧╙ FILENAME.  ╬OTE THAT IF THE ├OMMODORE FILENAME
  373. IS NOT IN THE 8/3 FORMAT OF ═╙-─╧╙, THEN SOMETHING IN THE NAME MAY BE LOST.
  374. ╙OME EXAMPLES OF FILENAME CONVERSION FOLLOW:
  375.  
  376. ├┬═-─╧╙ ╞╔╠┼╬┴═┼       ═╙-─╧╙ ╞╔╠┼╬┴═┼
  377. ----------------       ---------------
  378. "LRR.BIN"              "LRR.BIN"
  379. "LRR.128.BIN"          "LRR_128.BIN"
  380. "HELLO THERE.TEXT"     "HELLO_TH.TEX"
  381. "LONG_FILENAME"        "LONG_FIL.ENA"
  382. "FILE 1..3.S__5"       "FILE_1.S"
  383.  
  384. ╔T WOULD HAVE BEEN TIME-CONSUMING TO HAVE THE PROGRAM SCAN THE ═╙-─╧╙
  385. DIRECTORY FOR A FILENAME ALREADY EXISTING ON THE DISK, SO ╠╥╥ WILL PUT
  386. MULTIPLE FILES ON A DISK WITH THE SAME FILENAME WITHOUT COMPLAINING.  ╘HIS
  387. ALSO GETS RID OF THE PROBLEM OF ASKING YOU IF YOU WANT TO OVERWRITE THE OLD
  388. FILE OR GENERATE A NEW NAME.  ╚OWEVER, IN ORDER TO RETRIEVE THE FILE FROM
  389. DISK ON AN ═╙-─╧╙ MACHINE, YOU WILL PROBABLY HAVE TO USE THE ╥┼╬┴═┼ COMMAND TO
  390. RENAME THE FIRST VERSIONS OF THE FILE ON THE DISK TO SOMETHING ELSE SO ═╙-─╧╙
  391. WILL SCAN FURTHER IN THE DIRECTORY FOR THE LAST VERSION OF THE FILE WITH THE
  392. SAME FILENAME.  ╘HERE IS NO RENAME COMMAND IN ╠╥╥ BECAUSE ╔ NEVER THOUGHT OF
  393. IT IN TIME.  ╔T WOULD HAVE BEEN FAIRLY EASY TO PUT IN.
  394.  
  395. ╘HE DATE GENERATED FOR A NEW ═╙-─╧╙ FILE WILL BE ALL ZEROS.  ╙OME SYSTEMS
  396. INTERPRET THIS AS 12:00 AM, 01-╩AN-80 AND OTHERS DON'T DISPLAY A DATE AT ALL
  397. FOR THIS VALUE.
  398.  
  399. ╘HE PHYSICAL COPYING OF THE FILE IS DONE COMPLETELY IN MACHINE LANGUAGE AND
  400. NOTHING IS DISPLAYED ON THE SCREEN WHILE THIS IS HAPPENING, BUT YOU CAN FOLLOW
  401. THINGS BY LOOKING AT THE BLINKING LIGHTS AND LISTENING FOR CLICKS AND GRINDS.
  402.  
  403. ╙INCE THE ╞┴╘ AND DIRECTORY ARE MAINTAINED IN ╥┴═ DURING THE ENTIRE COPYING
  404. PROCESS AND ARE ONLY FLUSHED TO DISK AFTER THE ENTIRE BATCH OF FILES ARE
  405. COPIED, COPYING IS MADE MORE EFFICIENT, SINCE THERE WILL BE NO COSTLY SEEK
  406. BACK TO TRACK 0 AFTER WRITING EACH FILE (LIKE ═╙-─╧╙ DOES).  ╔F YOU HAVE A
  407. NUMBER OF SMALL FILES TO COPY, THEN THEY WILL BE KNOCKED OFF IN QUICK
  408. SUCCESSION, FASTER THAN MANY ═╙-─╧╙ MACHINES WILL COPY THEM.
  409.  
  410. ╘O SIMPLIFY THE IMPLEMENTATION, THE CURRENT TRACK OF DISK BLOCKS FOR WRITING
  411. IS NOT MAINTAINED LIKE IT IS FOR READING.  ┴LSO, A WRITING INTERLEAVE OF 1:1
  412. IS USED FOR A 1571, WHICH IS NOT OPTIMAL.  ╚OWEVER, SINCE WRITING IS SUCH A
  413. SLOW OPERATION ANYWAY, AND SINCE THE 1571 IS PARTICULARLY BAD BY INSISTING ON
  414. VERIFYING BLOCKS, NOT MUCH MORE OVERHEAD IS INTRODUCED THAN IS ALREADY
  415. PRESENT.
  416.  
  417. ┴N INTERESTING NOTE ABOUT WRITING ═╙-─╧╙ DISKS IS THAT YOU CAN TERMINATE ╠╥╥
  418. IN THE MIDDLE OF A COPY (WITH ╙╘╧╨+╥┼╙╘╧╥┼) OR IN THE MIDDLE OF COPYING A
  419. BATCH OF FILES, AND THE ═╙-─╧╙ DISK WILL REMAIN IN A PERFECTLY CONSISTENT
  420. STATE AFTERWARDS.  ╘HE STATE WILL BE AS IF NONE OF THE FILES WERE COPIED.  ╘HE
  421. REASON IS THAT THE CONTROL INFORMATION (THE ╞┴╘ AND DIRECTORY) IS MAINTAINED
  422. INTERNALLY AND IS FLUSHED ONLY AFTER COPYING IS ALL COMPLETED.  ┬UT DON'T
  423. TERMINATE ╠╥╥ WHILE IT IS FLUSHING THE CONTROL INFORMATION.
  424.  
  425. ╚ERE IS A TABLE OF COPYING SPEEDS FOR COPYING TO 1571, 1581, AND ├═─ ╞─-4000
  426. DISK UNITS WITH ┴╙├ AND ┬╔╬ TRANSLATION MODES.  ┴LL FIGURES ARE IN BYTES/
  427. SECOND, WHICH INCLUDES BOTH READING THE BYTE FROM A ├= DISK AND WRITING IT TO
  428. THE ═╙-─╧╙ DISK.  ╘HE AVERAGE SPEED FOR EITHER THE READ OR WRITE OPERATION
  429. INDIVIDUALLY WILL BE TWICE THE SPEED GIVEN BELOW.  ╘HESE RESULTS WERE OBTAINED
  430. FROM COPYING A 156,273 BYTE TEXT FILE (THE TEXT OF ├= ╚ACKING ╔SSUE #4).
  431.  
  432.    ╞╥╧═   \ ╘╧: ╞─-BIN     ╞─-ASC     81-BIN     81-ASC     71-BIN     71-ASC
  433.    --------+    ------     ------     ------     ------     ------     ------
  434.    ╥┴═╠INK ▄     2,332      2,200      2,332      2,200      1,594      1,559
  435.    ╥┴═─╧╙  ▄     1,070      1,053      1,604      1,600      1,561      1,510
  436.    ╞─4000  ▄         -          -      1,645      1,597      1,499      1,464
  437.    ╩─1581  ▄     1,662      1,619          -          -      1,474      1,440
  438.    ╩─1571  ▄     1,050      1,024        953        933          -          -
  439.  
  440. ╘HESE FIGURES ARE FOR TRANSFER SPEED ONLY, NOT COUNTING THE COUPLE OF SECONDS
  441. OF OPENING FILES AND FLUSHING THE DIRECTORY.  ╬OTE THAT ALL MY PHYSICAL DRIVES
  442. ARE ╩IFFY─╧╙-IFIED, SO YOUR PERFORMANCE MAY BE SLOWER.  ╔ AM AT A LOSS TO
  443. EXPLAIN WHY AN ╞─-4000 IS SO MUCH SLOWER THAN A 1581 FOR COPYING FROM A
  444. ╥┴═─╧╙ FILE, BUT THE SAME SPEED OR BETTER FOR COPYING FROM ANYTHING ELSE.
  445.  
  446. ---------------------------------------------------------┼ND-OF--╠╥╥200.─╧├---
  447.  
  448.